package com.ambow.shop.dao;

import java.sql.SQLException;
import java.util.List;

import com.ambow.shop.domain.Product;

/**
 * 产品数据访问接口。
 * 
 * @author chunw
 *
 */
public interface ProductDao {

	/**
	 * 增加给定产品。
	 * 
	 * @param product 产品；
	 * @return 受影响行数；
	 * @throws SQLException SQL异常；
	 */
	public int add(Product product) throws SQLException;

	/**
	 * 删除给定产品标识对应的产品。
	 * 
	 * @param id 产品标识；
	 * @return 受影响行数；
	 * @throws SQLException SQL异常；
	 */
	public int delete(int id) throws SQLException;

	/**
	 * 修改给定产品。
	 * 
	 * @param product 产品；
	 * @return 受影响行数；
	 * @throws SQLException SQL异常；
	 */
	public int update(Product product) throws SQLException;

	/**
	 * 获取给定产品标识对应的产品。
	 * 
	 * @param id 产品标识；
	 * @return 产品；
	 * @throws SQLException SQL异常；
	 */
	public Product get(int id) throws SQLException;

	/**
	 * 获取从给定行数开始，给定偏移量的产品列表。
	 * 
	 * @param startRow 起始行数；
	 * @param next     偏移量；
	 * @return 产品列表；
	 * @throws SQLException SQL异常；
	 */
	List<Product> list(int startRow, int next) throws SQLException;

	/**
	 * 获取总记录数；
	 * 
	 * @return 总记录数；
	 * @throws SQLException SQL异常；
	 */
	Long getTotalRows() throws SQLException;

}